iT邦幫忙

2024 iThome 鐵人賽

DAY 12
1
自我挑戰組

上班辦公室,下班讀書室:RISC-V / ARM64 體系結構編程與實踐系列 第 12

[鐵人賽] Day 12 ARM 第 18 章節 memory barrier instruction 產生的原因

  • 分享至 

  • xImage
  •  

今日的行程:
辦公室:10:00 - 19:30
讀書室:20:30 - 22:30

正片開始

今日的記錄:

Memory Consistency Model (記憶體一致性模型)

用來規範記憶體存取指令的順序,以確保整個系統的正確性。

  • sequential consistency
  • processor consistency: total store ordering (x86)
  • weak consistency (ARM64)
    • release consistnecy (RISC-V: RVWMO)

ARMv8 引入了 RCsc (Release Consistency sequentially consistent), RCpc (Release Consistency processor consistent) 模型,引入的意思是新增了指令來支援這樣的 memory consistency model;
RISC-V 也有 RVTSO (RISC-V Total Store Ordering) 的 extension,這個則是規範硬體在 load/store/atomic 指令的行為。
所以其實可能是有這樣狀況,原本的 ISA 預設使用的是一種 consistency model,但提供其他 memory consistency model 的支援。

RISC-V 規範中有詳細的訂定 RVWMO 會有怎樣的約束條件,例如,有記憶體存取指令有相依性的話,指令就不能被重排或是亂序執行,類似這樣的規範;
所以我的理解是,不同的 memory consistency model 會有不同的約束強度,而越嚴格的,就越難有優化的空間,但是越鬆弛的,則是越難保證正確性,需要程式設計者,自行使用 ISA 提供的指令來確保正確性。

ARM memory attribute (可參照 RISC-V PMA)

  • Cacheability: cacheable <--> non-cacheable 滿直觀的,可不可以被存在 cache 中,並且有不同的快取執行策略。
  • Shareability: 直接上圖 (從 ARM 的 document 來的)
    https://ithelp.ithome.com.tw/upload/images/20240912/20141136PytyhqSm2w.png

ARM memory type

  • Normal memory: Idempotency

    • No side effects for read operation and repeated read operations.
    • No side effect for write operation and repeated write operations to the same address location.
    • Multiple accesses can be merged without side effects for the same type (Read/Write) of access.
    • Read operation returns the last written value irrespective of the number of times read operation is performed.
    • Read operation can fetch additional memory contents without side effects.
    • Unaligned access can be supported.
  • Device memory: 會根據 G(Gathering) R(Reordering) E(Early Write Acknowledgement) 來做分類,G 代表 transaction 可不可以合併,R 代表可不可以被 reorder,E 代表寫入的操作可不可以在還沒完成寫入 device 前就先發出 ACK (能不能在寫入 store buffer 後就發 ACK)。

    • Device-nGnRnE
    • Device-nGnRE
    • Device-nGRE
    • Device-GRE

總結

  • Memory Consistency Model 的東西是真抽象也難分類,光是整理這一小部分,就花了很多的時間XD
  • 不過如果從 ISA 提供指令的實際的行為和功能來觀察,感覺會稍微好懂一些,今天就先記錄這些吧

上一篇
[鐵人賽] Day 11 ARM 第19章 - Memory Barrier Instruction
下一篇
[鐵人賽] Day 13 ARM 第 18 章節 memory barrier instruction 產生的原因(2)
系列文
上班辦公室,下班讀書室:RISC-V / ARM64 體系結構編程與實踐26
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言